查看原文
其他

circlize的简单弦状图快速作图示例

生信小白鱼 鲤小白 小白鱼的生统笔记 2022-05-08
R包circlize绘制物种互作频数弦状图

前篇展示了R包circlize绘制弦状图一个示例,该示例算是从头绘制弦图的一种方法吧,由外到内依次绘制每个区域,过程可能有些繁琐。

其实,相比从头绘制,circlize包中提供了一个自动作图函数,chordDiagram(),好处是可以很方便快捷地出图。不过它只能展示相对简单的情形,对于前篇中的那种“多环”结构,则很难呈现(似乎还需从头一步步来)。好在大多数情况下我们所需展示的弦图都不是复杂样式,因此即可直接通过chordDiagram()一条命令快速作出。


如下示例的两组弦图,来自我师兄们的毕业论文。师兄们在构建了微生物共发生网络图后,统计了不同种类微生物之间的互作频数(OTU-OTU连接数),并通过弦图展示出以反映某种规律。



这种类型的弦图组分不复杂,即可快速直接通过chordDiagram()一步生成。下文仿照师兄们文章中的图来两个

网盘附件“edge.csv”,同样来自某微生物互作网络图的边连接数据,包含了相互作用的OTU以及OTU所属的门水平分类。

https://pan.baidu.com/s/1uXtturMnIIDbKsJCVZMrcA


 

首先展示单节点(OTU)间的互作频数弦图。

library(circlize)
 
##单个节点绘制
#读取数据
edge <- read.csv('edge.csv')
#edge <- edge[order(edge$phylum_source, edge$phylum_target), ]
edge1 <- edge[3:4]
edge1$value <- 1
 
#作图,详情 ?chordDiagram
#或者参阅文档 https://jokergoo.github.io/circlize_book/book/the-chorddiagram-function.html
color = c(Acidobacteria = 'green', Actinobacteria = 'red', Bacteroidetes = 'orange', Firmicutes = 'purple', Gemmatimonadetes = 'skyblue', Proteobacteria = 'blue')
 
#png('edge1.png', width = 2000, height = 2000, res = 300, units = 'px')
pdf('edge1.pdf', height = 6, width = 6)
 
chordDiagram(edge1, 
    annotationTrack = c('grid', 'name'), #绘制外周圆弧区,显示名称,但隐藏刻度轴;显示刻度可使用 c('grid', 'name', 'axis')
    grid.col = color, #颜色设置
    annotationTrackHeight = c(0.035, 0.015), #名称离圆弧的距离,以及圆弧的宽度
directional = 1 #“方向缩进”
)
 
dev.off()


按OTU的门分类水平统计所有的互作频数后,展示总频数。

##合并节点绘制
#统计
library(doBy)
edge2 <- summaryBy(value~phylum_source+phylum_target, edge1, FUN = sum)
 
#作图,详情 ?chordDiagram
#png('edge2.png', width = 2000, height = 2000, res = 300, units = 'px')
pdf('edge2.pdf', height = 6, width = 6)
 
chordDiagram(edge2, 
    annotationTrack = c('grid', 'name'),
    grid.col = color,
    annotationTrackHeight = c(0.035, 0.015),
    directional = 1 )
 
dev.off()


所以,弦图可能看起来比较“高大上”,但是绘制起来也还是并没有想象中的那么难,对不对呢?


 

链接

R包circlize绘制弦状图示例(多组分信息样式,从头绘制)

R语言绘制曼哈顿图示例

R语言绘制差异火山图示例

R语言绘制三元图(Ternary Plot)示例

突破韦恩图数量限制,R包UpSetR集合可视化

R语言绘制箱线图

R语言绘制双向柱状图

R语言绘制堆叠面积图

R语言绘制星形图示例

R语言绘制饼图(扇形图)

R语言绘制花瓣图示例

R语言绘制韦恩图的几种方法示例



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存